home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / prolog / modprolg / mod-prol.lha / Prolog / Examples / slide1.mod < prev    next >
Text File  |  1992-06-09  |  728b  |  25 lines

  1.     signature problemsig =
  2.         sig
  3.             pred s/2 and
  4.                  goal/1.
  5.         end.
  6.  
  7.     structure eightqueens/problemsig =
  8.         struct
  9.             goal([_,_,_,_,_,_,_,_]).
  10.             s(Queens,[Queen|Queens]) :-
  11.                 member(Queen,[1,2,3,4,5,6,7,8]),
  12.                 not member(Queen, Queens),
  13.                 safe([Queen|Queens]).
  14.             safe([]).
  15.             safe([Queen|Others]) :-
  16.                 safe(Others),
  17.                 noattack(Queen,Others,1).
  18.             noattack(_,[],_).
  19.             noattack(Y,[Y1|Ylist],Xdist) :-
  20.                 Y1 - Y =\= Xdist,
  21.                 Y - Y1 =\= Xdist,
  22.                 Dist1 is Xdist + 1,
  23.                 noattack(Y, Ylist, Dist1).
  24.         end.
  25.